package scu.maqiang.fes;

/**
 * 边值问题类型，用于标识在矩阵组装过程中各种类型的整体矩阵, 也用于给出材料参数的形式,
 * 这里给出了各种类型的枚举数据, 具体单元矩阵与向量的实现须在该枚举中选择特定的枚举量, 并将其余相关的量忽略
 * @author 马强
 *
 */
public enum BVPType {

    /**
     * 通常直角坐标系下问题
     */
    COMMON,
    
    /**
     * 通常直角坐标系下, 材料参数以向量的形式给出
     */
    VECTOR_FORM,
    
    /**
     * 二维与一维轴对称问题
     */
    AXISYMMETRIC,

    /**
     * 一维球对称问题
     */
    SPHERICAL,

    /**
     * 二维平面应力问题
     */
    PLANESTRESS,

    /**
     * 二维平面应变问题
     */
    PLANESTRAIN,


    /**
     * 轴对称平面应力问题
     */
    AXIS_PLANESTRESS,

    /**
     * 轴对称平面应变问题
     */
    AXIS_PLANESTRAIN,

    /**
     * 直角坐标下, 材料参数以矩阵方式给出
     */
    CONSTITUTE_MATRIX_COMMON,

    /**
     * 轴对称情况下, 材料参数以矩阵方式给出
     */
    CONSTITUTE_MATRIX_AXIS,

    /**
     * 一维球对称情况下, 材料参数以矩阵方式给出
     */
    CONSTITUTE_MATRIX_SPHE,
    
    /**
     * 组装质量矩阵时, 矩阵类型为一致矩阵
     */
    CONSIST_MASS,

    /**
     * 组装质量矩阵时, 矩阵类型为集中矩阵
     */
    LUMP_MASS,

    /**
     * 组装轴对称质量矩阵时, 矩阵类型为一致矩阵
     */
    AXIS_CONSIST_MASS,

    /**
     *  组装轴对称质量矩阵时, 矩阵类型为集中矩阵
     */
    AXIS_LUMP_MASS,

    /**
     * 组装一维球对称质量矩阵时, 矩阵类型为一致矩阵
     */
    SPHE_CONSIST_MASS,

    /**
     * 组装一维球对称质量矩阵时, 矩阵类型为集中矩阵
     */
    SPHE_LUMP_MASS,

    /**
     * 非线性类型1
     */
    NONLINEAR_1,

    /**
     * 非线性类型2
     */
    NONLINEAR_2,

    /**
     * 材料参数为非线性, 以未知量的多项式形式给出
     */
    NONLINEAR_POLYNORMIAL_1,

    /**
     * 材料参数为非线性, 以未知量的多项式形式给出
     */
    NONLINEAR_POLYNORMIAL_2,

    /**
     * 材料参数为非线性, 以未知量的指数形式给出
     */
    NONLINEAR_EXPONENTIAL_1,

    /**
     * 材料参数为非线性, 以未知量的指数形式给出
     */
    NONLINEAR_EXPONENTIAL_2,

    /**
     * 材料参数为非线性, 以未知量导数的多项式形式给出
     */
    NONLINEAR_DERIVATIVE_1,

    /**
     * 材料参数为非线性, 以未知量导数的多项式形式给出
     */
    NONLINEAR_DERIVATIVE_2,

    /**
     * 材料参数为非线性, 以未知量导数的三角函数形式给出
     */
    NONLINEAR_TRIGONOMETRIC_1,

    /**
     * 材料参数为非线性, 以未知量导数的三角函数形式给出
     */
    NONLINEAR_TRIGONOMETRIC_2
}
